<?php

    // 192.168.50.92
    // 192.168.50.1
    // 217.30.253.245
    // 217.30.252.242

    $mikron->Page->StartBody();

    $pageindex = 3;
    $postid = isset($_GET['speccode'])?$_GET['speccode']:"";
    $prevpage = "page2.php";
    $nextpage = "page4.php";
    $nextbutton_action = "checkcode();";
    $schedule_days = 8;
    $recordresult = isset($_SESSION['recordresult'])?$_SESSION['recordresult']:Array();
    $recordresult_1 = array_keys($recordresult, 1); // Guid-ы тикетов с результатом = 1
    $recordresult_2 = array_keys($recordresult, 2); // Guid-ы тикетов с результатом = 2

    if(isset($_REQUEST['form_values']))
    {
        $_SESSION['form'] = $_REQUEST['form_values'];
        $form_values = $_REQUEST['form_values'];
    }
    elseif(isset($_SESSION['form']))
    {
        $form_values = isset($_SESSION['form'])?$_SESSION['form']:Array();
    }
    else
    {
        header("Location: $prevpage");
        exit;
    }

    require_once(dirname(__FILE__).'/posts.inc');
    require_once(dirname(__FILE__).'/limits.inc');

    $tableindex = 0;
    $tablestart = false;
    $old_speciality = null;
    $spec_index = -1;

    require_once(dirname(__FILE__).'/info.inc');

?>

<script type="text/javascript">
    // Функция выполняется после полной загрузки страницы
    $(document).ready(function()
    {
        // Вешаем обработчик на нажатие кнопкой мыши в любом месте страницы
        // для скрытия открытых менюшек
        $("body").bind("mouseup", function()
        {
            if($.browser.msie)
            {
                $('div.box').hide();
            }
            else
            {
                $('div.box').fadeOut('slow');
            }
        });
    });
</script>

<form method="POST" action="<?php echo $nextpage;?>">

<?php

    $count_of_enabled_days = 0;
    foreach($posts->items() as $specialityname => $posts)
    {
        if($specialityname != $old_speciality)
        {
            $spec_index++;
            $old_speciality = $specialityname;
            if($tablestart){?></TABLE><br /><?php }
            $tablestart = true;
            ?>
            <input name="tickets_ids[<?php echo $spec_index;?>]" type="hidden" id="tickets_ids[<?php echo $spec_index;?>]" value="">
            <TABLE width="100%" border="0" cellspacing="0" cellpadding="0"
            class="wintable" style="padding-bottom: 0.4em;">
            <tr>
                <td class="wincap1"><?php echo $specialityname;?></td>
                <?php
                    for($i=0; $i < $schedule_days; $i++)
                    {
                        $dt = MikronDateTime::DateAdd("w",$i,time());
                        ?><td class="wincap2" align="center"><?php echo MikronDateTime::BeautifulWeekDayName($dt), '<br />', MikronDateTime::BeautifulDate($dt,FALSE,TRUE);?></td><?php
                    }
                ?>
            </tr>
            <?php
        }

        foreach($posts as $post)
        {
            ?>
            <tr>
                <td class="wincell1" width="20%" bgcolor="#F0F0F0">
                    <?php echo $post->fio, "<br /><font class=\"text_grey\">", $post->division, "<br />", $post->profile;?></font>
                </td>
                    <?php

                        $today = time();
                        // количество дней расписания
                        for($i = 0; $i < $schedule_days; $i++)
                        {
                            // от текущего дня
                            $dt = MikronDateTime::DateAdd("w", $i, $today);
                            $dtfmt = date("d-m-Y", $dt);
                            $tickets_for_this_date = 0;
                            foreach($post->workdates as $workdate)
                            {
                                $ticketdate = date('d-m-Y', strtotime($workdate->date));
                                if($ticketdate == $dtfmt)
                                {
                                    foreach($workdate->tickets as $ticket)
                                    {
                                        if($ticket->status == 0)
                                        {
                                            $tickets_for_this_date++;
                                        }
                                    }
                                    break;
                                }
                            }
                            $id = "id_".$post->id."_$dt";
                            $enabled = $tickets_for_this_date > 0;

                            reset($post->workdates);
                            $error_1 = false;
                            $error_2 = false;

                            ?>
                            <td class="<?php if($enabled){echo"wincell2";}else{echo"wincell2_dis";}?>" align="center" valign="middle">
                            <?php

                            foreach($post->workdates as $workdate)
                            {
                                reset($workdate->tickets);
                                foreach($workdate->tickets as $ticket)
                                {
                                    $ticket_id = $ticket->id;
                                    $ticketdate = date('d-m-Y', strtotime($workdate->date));
                                    if($ticketdate == $dtfmt)
                                    {
                                        $error_1 = in_array($ticket_id, $recordresult_1);
                                        $error_2 = in_array($ticket_id, $recordresult_2);
                                        if($error_1 || $error_2)
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                            if($error_1)
                            {
                                $enabled = false;
                            }

                            if($enabled)
                            {
                                $limitcount = 0;
                                $limitlogin = null;
                                $sessionlogin = $_SESSION['login'];
                                if(count($limits) > 0)
                                {
                                    reset($limits);
                                    $post_id = $post->id;
                                    foreach($limits as $limit)
                                    {
                                        if($post_id == $limit->post)
                                        {
                                            if($dtfmt == $limit->date)
                                            {
                                                $limitcount = $limit->limit;
                                                $limitlogin = trim($limit->login);
                                                //break;
                                            }
                                        }
                                    }
                                }
                                $count_of_enabled_days++;
                                ?>
                                <!-- Выводим количество свободных талончиков, заодно и ссылка на открытие контекстного меню выбора времени -->
                                <a href="#" onclick="showTicketList(this, event.x, event.y, '<?php echo $id;?>');return false;" name="selectedticket['<?php echo $post->spacialityid?>']"><?php echo $tickets_for_this_date;?></a>
                                <!-- Сюда выведется выбранное время -->
                                <br /><span style="color: #0593dc;" id="<?php echo $id;?>_cell"></span>
                                <?php
                                    // Начало контекстного меню
                                    start_menu($id);
                                        $i_ticket = 0;
                                        $tab3 = new html_table(constant("TICKETS_PER_LINE"), "ctxmenutimecell", null, 0, 0);
                                        reset($post->workdates);
                                        foreach($post->workdates as $workdate)
                                        {
                                            $ticketdate = date('d-m-Y', strtotime($workdate->date));
                                            foreach($workdate->tickets as $ticket)
                                            {
                                                if($ticketdate == $dtfmt)
                                                {
                                                    $tstatus = $ticket->status;
                                                    if($limitcount > 0)
                                                    {
                                                        if($limitlogin == $sessionlogin)
                                                        {
                                                            if($i_ticket >= $limitcount)
                                                            {
                                                                $tstatus = 1;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if($i_ticket < $limitcount)
                                                            {
                                                                $tstatus = 1;
                                                            }
                                                        }
                                                    }
                                                    $tab3->newcol();
                                                        $ticketid = $ticket->id;
                                                        $tickettime = $ticket->time;
                                                        if($tstatus == 0)
                                                        {
                                                            echo "<a href='#' class='timeticket_v2'
                                                                onClick=\"selectTicket($spec_index, this, '$ticketid',
                                                                '$id', '$tickettime'); return false;\">$tickettime</a>";
                                                        }
                                                        else
                                                        {
                                                            echo "<a href='#'>$tickettime</a>";                                                    
                                                        }
                                                    $i_ticket++;                                                
                                                }
                                            }
                                        }
                                        $tab3->end();
                                    // Конец контекстного меню
                                    end_menu();
                            }
                            else
                            {
                                // Свободных талонов нет
                                echo $tickets_for_this_date;
                            }
                            if($error_1){?><br /><img style="cursor: help;" src="/templates/remoterecord/images/remoterecord/record_error.png" title="К сожалению нельзя записать пациента на этот день, т.к. пациент уже записан к этому специалисту на этот день!" width="24" height="24"></span><?php }
                            if($error_2){?><br /><img style="cursor: help;" src="/templates/remoterecord/images/remoterecord/record_warning.png" title="Выбранный талончик уже занят кем-то другим!" width="24" height="24"></span><?php }
                            ?></td><?php
                        }
                    ?></tr><?php
        }
    }
    if($tablestart){?></TABLE><?php }

?>
    <input type="submit" value="Назад" onclick="return goToBack(); return false;">
    <input type="submit" value="Далее" onClick="return okRecord();" <?php if($count_of_enabled_days<1){?>disabled<?php }?>>
    <input type="submit" value="Отмена" onclick="location.href='/remoterecord/'; return false;" >
    </p>
</form>

<script type="text/javascript">

    var prev_menu = null;
    var selected_ticket_cell = null;
    var prev_selected_cell = new Array(<?php echo $spec_index+1;?>);
    var selected_tickets = new Array(<?php echo $spec_index+1;?>);
    var ticket_cell_span_prev = new Array(<?php echo $spec_index+1;?>);
    var prev_selected_time_cell = new Array(<?php echo $spec_index+1;?>); // бокс, куда выводится выбранное время

    for (i = 0; i < selected_tickets.length; i++)
    {
        selected_tickets[i] = null;
    }

    function goToBack()
    {
        location.href = "<?php echo $prevpage;?>";
        return false;
    }

    function showTicketList(obj, x, y, id)
    {
        // скрываем предыдущее контекстное меню
        if(prev_menu != null)
        {
            // $(prev_menu).removeShadow();
            prev_menu.style.display = 'none';
        }
        // получаем текущее
        var menu = document.getElementById(id);
        // перемещаем
        var pos = $(obj).position();
        x = pos.left;
        y = pos.top;
        var menuW = $(menu).outerWidth();
        var docW = $(document).width();
        if(x+menuW+48 >= docW)
        {
            x -= menuW;
        }
        $(menu).css({left:x+8,top:y+8});
        // показываем
        $(menu).hide().fadeIn();
        // $(menu).dropShadow({left: 5, top: 5, opacity: 0.6, blur: 2});
        // запоминаем текущее
        prev_menu = menu;
    }

    //IE5+, Mozilla 1.0+, Opera 7+
    /*
    function getClientWidth()
    {
      return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
    }
    function getClientHeight()
    {
      return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
    }
    */

    function selectTicket(specindex, cell, ticket_id, menuid, ticket_time)
    {
        // specindex — индекс специальности
        // cell — ячейка меню
        // ticket_id — AKUZ идентификатор тикета
        // menuid — идентификатор меню
        // ticket_time — время тикета

        // бокс, куда выводится выбранное время для текущей специальности
        var ticket_cell_span = document.getElementById(menuid+'_cell');
        if(ticket_cell_span_prev[specindex]!=null)
        {
             ticket_cell_span_prev[specindex].innerText = '';
        }
        if(ticket_cell_span!=null)
        {
            ticket_cell_span_prev[specindex] = ticket_cell_span;
            ticket_cell_span.innerText = ticket_time;
        }

        // Заполняем поле времени для специальности
        if(prev_selected_time_cell[specindex]!=null)
        {
            prev_selected_time_cell[specindex].innerText = '';
        }
        var ticket_ids_field = document.getElementById("tickets_ids["+specindex+"]");
        if(ticket_ids_field!=null)
        {
            ticket_ids_field.value = ticket_id;
        }
        
        // скрываем меню
        var visiblemenu = document.getElementById(menuid);
        if(visiblemenu!=null)
        {
            visiblemenu.style.display = 'none';
        }

        // запоминаем тикет
        selected_tickets[specindex] = ticket_id;

        // убираем выделение с предыдущей выбранной ячейки
        if(prev_selected_cell[specindex] != null)
        {
            prev_selected_cell[specindex].style.backgroundColor = '';
            prev_selected_cell[specindex].style.color = '';
        }
        // выделяем ячейку с выбранным временем
        cell.style.backgroundColor = '#0593dc';
        cell.style.color = 'white';
        prev_selected_cell[specindex] = cell;        

    }

    function okRecord()
    {
        for (i = 0; i < selected_tickets.length; i++)
        {
            if(selected_tickets[i] == null)
            {
                alert("Дата и время выбрано не по всем специальностям.");
                return false;
            }
        }
        return true;
    }

</script>

<?php $mikron->Page->EndBody();?>